带内重启OCP卡后,概率性出现BMC的dhcp ipV6网关丢失问题分析
更新时间: 2026/06/02
在Gitcode上查看源码问题背景
- 单板类型:920G;
- 软件版本:iBMC300 5.12.0.5.B001;
- 涉及功能:OCP卡,dhcp;
- 触发条件:OS侧重启OCP卡;
- 业务表现:预期重启后BMC dhcp ipv6网关正常显示;实际重启后BMC dhcp ipv6网关丢失。
问题复现步骤
网络设置为ipv6,dhcp模式;带内重启OCP网卡。
关键日志信息
app.log信息:
定位过程
- 一键收集日志,在app.log中确认问题原因,日志中可看出,来自两个不同channel_id的ncsi控制命令需要修改BMC侧的网络组件属性值,导致两个均失败,并且dhcp获取ipv4和ipv6地址均失败。
- 查看network_adapter组件代码,发现每次检查nsci响应有效性的时候,都会重新获取一把id,导致多次响应的时候,该id重复使用在多个不同的进程中:
问题原因
network_adapter组件多线程并发,导致两个协程同时修改同一个环境变量,进而出现校验出错,展现在可感知层面的就是DHCP的网关丢失。
解决方案
将ncsi校验中生成的id修改为ncsi请求中的id,当请求中的id与响应中的id不相等时,报错,退出。